package com.probiz.estore.product.dao;

import com.probiz.estore.common.model.product.SkuOption;
import com.probiz.estore.common.model.product.SkuOptionValue;
import com.probiz.estore.core.dao.GenericDao;

import java.util.List;

/**
 * Dao interface for SkuOptionValue.
 */
public interface SkuOptionValueDao extends GenericDao<SkuOptionValue> {
    /**
     * 根据option Name和option value ，查找SkuOptionValue
     *
     * @param optionName
     * @param valueName
     * @return
     */
    public List<SkuOptionValue> findSkuOptionValueByOptionNameAndValueName(String optionName, String valueName);

    /**
     * 根据option Code和option value ，查找SkuOptionValue
     *
     * @param optionCode
     * @param valueName
     * @return
     */
    public List<SkuOptionValue> findSkuOptionValueByOptionCodeAndValueName(String optionCode, String valueName);

    /**
     * 保存规格值 从数组中获取必要参数
     *
     * @param skuOption 规格
     * @param ids       规格值id数组
     * @param names     规格值名称数组
     * @param types     规格值类型数组
     * @param values    规格值值数组
     * @return 新规格值id数组
     */
    public List<String> saveSkuOptionValuesFromArrays(SkuOption skuOption, String[] ids, String[] names, String[] types, String[] values);
    
    
    /**
	 * 根据规格值id获取目前关联的商品规格值的个数
	 * @param skuOptionValueId
	 * @return
	 */
	public Long getSizeOfProductSkuOptionValue(Integer skuOptionValueId);
}